home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / unix / volume24 / qterm5.0 / part02 < prev    next >
Encoding:
Internet Message Format  |  1991-03-21  |  17.1 KB

  1. Subject:  v24i083:  Qterm5.0 -- Query terminal for its type, Part02/02
  2. Newsgroups: comp.sources.unix
  3. Approved: rsalz@uunet.UU.NET
  4. X-Checksum-Snefru: a109e85b c0cdcc42 257a9ca3 4a7b89af
  5.  
  6. Submitted-by: "Michael A. Cooper" <mcooper@usc.edu>
  7. Posting-number: Volume 24, Issue 83
  8. Archive-name: qterm5.0/part02
  9.  
  10. #! /bin/sh
  11. # This is a shell archive.  Remove anything before this line, then feed it
  12. # into a shell via "sh file" or similar.  To overwrite existing files,
  13. # type "sh file -c".
  14. # The tool that generated this appeared in the comp.sources.unix newsgroup;
  15. # send mail to comp-sources-unix@uunet.uu.net if you want that tool.
  16. # Contents:  Makefile qterm.1 qterm.h qtermtab
  17. # Wrapped by rsalz@litchi.bbn.com on Fri Mar 22 12:25:38 1991
  18. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  19. echo If this archive is complete, you will see the following message:
  20. echo '          "shar: End of archive 2 (of 2)."'
  21. if test -f 'Makefile' -a "${1}" != "-c" ; then 
  22.   echo shar: Will not clobber existing file \"'Makefile'\"
  23. else
  24.   echo shar: Extracting \"'Makefile'\" \(1908 characters\)
  25.   sed "s/^X//" >'Makefile' <<'END_OF_FILE'
  26. X#
  27. X# Copyright (c) 1990 Michael A. Cooper.
  28. X# This software may be freely distributed provided it is not sold for 
  29. X# profit and the author is credited appropriately.
  30. X#
  31. X# $Header: /src/common/usc/bin/qterm/RCS/Makefile,v 5.1 1991/02/20 02:31:50 mcooper Exp $
  32. X#
  33. X# Makefile for QTerm
  34. X#
  35. X
  36. X#
  37. X# DIR is the main/top-level directory.
  38. X# If you change DIR, run "make reconfig".
  39. X#
  40. XDIR = /usr/usc
  41. X
  42. X#
  43. X# BIN is were the "qterm" binary gets installed.
  44. X#
  45. XBIN = $(DIR)/bin
  46. X
  47. X#
  48. X# MAN is the directory where the "qterm.1" man page goes.
  49. X#
  50. XMAN = $(DIR)/man/man1
  51. X
  52. X#
  53. X# TABFILE should be set to the location you want the qterm table
  54. X# file placed in.
  55. X#
  56. XTABFILE = $(DIR)/lib/qtermtab
  57. X
  58. X#
  59. X# Add "-DUSG5" to DEFS below, if your system is Unix System V.
  60. X# Add "-DHAS_VARARGS" if your system supports varargs.
  61. X# Add "-DOPT_COMPAT" if you want compatibility with old command line options.
  62. X#
  63. XDEFS     = -DTABFILE=\"$(TABFILE)\" -DOPT_COMPAT
  64. X
  65. X#
  66. X# On some System V systems you will need to add "-lPW" to LIBS.
  67. X#
  68. XLIBS    =
  69. X
  70. X
  71. XCONFIGFILES    = Makefile qterm.1 options.3
  72. XCFILES         = qterm.c options.c
  73. XHFILES        = qterm.h options.h
  74. XOBJS         = qterm.o options.o
  75. XCFLAGS         = -O $(DEFS)
  76. X
  77. X
  78. Xqterm: $(OBJS) $(HFILES)
  79. X    $(CC) $(CFLAGS) $(OBJS) -o qterm $(LIBS)
  80. X
  81. Xreconfig:
  82. X    -@for i in $(CONFIGFILES); do \
  83. X                echo ReConfiguring $$i...;\
  84. X        sed "s;/usr/usc;$(DIR);g" < $$i > $$i.tmp;\
  85. X        mv -f $$i.tmp $$i;\
  86. X        done
  87. X
  88. X$(OBJS): $(HFILES)
  89. X
  90. Xshar:
  91. X    shar README qtermtab $(CONFIGFILES) $(CFILES) $(HFILES) > qterm.shar
  92. X
  93. Xclean:
  94. X    rm -f *.o core log *~ \#* qterm qterm.shar o
  95. X
  96. X#
  97. X# Install target for BSD machines.
  98. X#
  99. Xinstall: qterm qterm.1 qtermtab
  100. X    install -c -m 755 qterm $(BIN)
  101. X    install -c -m 644 qterm.1 $(MAN)
  102. X    install -c -m 644 qtermtab $(TABFILE)
  103. X
  104. X#
  105. X# Install target for System V machines.
  106. X#
  107. Xinstall.usg5: qterm qterm.1 qtermtab
  108. X    cp qterm $(BIN); chmod 755 $(BIN)/qterm
  109. X    cp qterm.1 $(MAN); chmod 644 $(MAN)/qterm.1
  110. X    cp qtermtab $(TABFILE); chmod 644 $(TABFILE)
  111. END_OF_FILE
  112.   if test 1908 -ne `wc -c <'Makefile'`; then
  113.     echo shar: \"'Makefile'\" unpacked with wrong size!
  114.   fi
  115.   # end of 'Makefile'
  116. fi
  117. if test -f 'qterm.1' -a "${1}" != "-c" ; then 
  118.   echo shar: Will not clobber existing file \"'qterm.1'\"
  119. else
  120.   echo shar: Extracting \"'qterm.1'\" \(5805 characters\)
  121.   sed "s/^X//" >'qterm.1' <<'END_OF_FILE'
  122. X.\"
  123. X.\" Copyright (c) 1990 Michael A. Cooper.
  124. X.\" This software may be freely distributed provided it is not sold for 
  125. X.\" profit and the author is credited appropriately.
  126. X.\"
  127. X.\" $Header: /am/sol/src/common/usc/bin/qterm/RCS/qterm.1,v 5.0 90/12/15 18:30:38 mcooper Release $
  128. X.\"
  129. X.TH QTERM 1 "6 November 1990"
  130. X.ds ]W USC-UCS
  131. X.SH NAME
  132. Xqterm \- Query Terminal
  133. X.SH SYNOPSIS
  134. Xqterm 
  135. X[
  136. X.B +|\-alt
  137. X] [
  138. X.B +|\-always
  139. X] [
  140. X.B +|\-longname
  141. X] [
  142. X.B +|\-quiet
  143. X] [
  144. X.B +|\-sent
  145. X] [
  146. X.B +|\-timeout
  147. X] [
  148. X.B +|\-usrtab
  149. X] [
  150. X.B +|\-watch
  151. X] [
  152. X.B +|\-systab
  153. X] [
  154. X.B \-wait
  155. X.I interval
  156. X] [
  157. X.B \-file
  158. X.I tabfile
  159. X]
  160. X.SH DESCRIPTION
  161. X.I Qterm
  162. Xis used to query a terminal to determine its name.
  163. XThis is done by sending a special sequence to the terminal,
  164. Xreading in a response, and comparing it against a table of possible
  165. Xresponses.
  166. XThe ``name'' printed to standard output should be one found in
  167. Xthe
  168. X.I termcap(5)
  169. X(or
  170. X.I terminfo(5)
  171. Xfor System V systems)
  172. Xdatabase.
  173. X.PP
  174. XFor 
  175. X.I csh(1) 
  176. Xusers,
  177. Xputting a line in your 
  178. X.I .login 
  179. Xfile such as:
  180. X.sp 1
  181. X.in +.5i
  182. Xsetenv TERM `qterm`
  183. X.in -.5i
  184. X.sp 1
  185. Xshould automagically set your terminal type.
  186. XFor 
  187. X.I sh(1)
  188. Xusers, putting these lines in your 
  189. X.I .profile 
  190. Xfile should set your terminal type:
  191. X.sp 1
  192. X.in +.5i
  193. XTERM=`qterm`
  194. X.br
  195. Xexport TERM
  196. X.in -.5i
  197. X.sp 1
  198. X.LP
  199. XBy default,
  200. X.B qterm
  201. Xuses the system tab file
  202. X.I /usr/usc/lib/qtermtab
  203. Xto obtain information for querying terminals.
  204. X.SH OPTIONS
  205. X.IP \fB+alt\fP
  206. XUse the alternate string ``<ESCAPE>[c'' when asking the terminal to
  207. Xidentify itself.  This string is recognized by most ANSI compatible
  208. Xterminals.
  209. X.IP \fB\-alt\fP
  210. XDon't use the alternate string, but the string found in the
  211. X.B tabfile
  212. Xbeing used.
  213. XThis is the default.
  214. X.IP \fB+always\fP
  215. XAlways send the terminal query string.
  216. XNormally the query string is only sent if it differs from
  217. Xthe last string sent.
  218. X.IP \fB-always\fP
  219. XOnly send the terminal query string if it differs from the last
  220. Xstring sent.
  221. XThis is the default.
  222. X.IP "\fB\-file \fItabfile\fP"
  223. XUse
  224. X.I <tabfile>
  225. Xto find information for querying the terminal.
  226. X.IP \fB+longname\fP
  227. XPrint only the long (verbose) terminal name.
  228. X.IP \fB\-longname\fP
  229. XDon't print the long (verbose) terminal name.
  230. XThis is the default.
  231. X.IP \fB+quiet\fP
  232. XBe quiet and only print the terminal name to standard output.
  233. X.IP \fB\-quiet\fP
  234. XDon't be quiet and only print the terminal name to standard output.
  235. XThis is the default.
  236. X.IP \fB+watch\fP
  237. XWatch the characters sent and recieved to the terminal.
  238. X.IP \fB\-watch\fP
  239. XDon't watch the characters sent and recieved to the terminal.
  240. XThis is the default.
  241. X.IP \fB+timeout\fP
  242. XWait for timeout when listening for response string.
  243. XThis is useful if the first entry in a qtermtab doesn't have
  244. Xa response string with an ending character that is common
  245. Xwith the rest of the qtermtab entries.
  246. X.IP \fB\-timeout\fP
  247. XDisable waiting for timeout when listening for response string.
  248. XThis is the default.
  249. X.IP \fB+usrtab\fP
  250. XUse 
  251. X.B $HOME/.qtermtab
  252. Xto find information for querying the terminal.
  253. X.IP \fB\-usrtab\fP
  254. XDon't use
  255. X.B $HOME/.qtermtab
  256. Xto find information for querying the terminal.
  257. XThis is the default.
  258. X.IP \fB+sent\fP
  259. XDisplay the final response sent from
  260. Xthe terminal in a ``nice'' fashion.
  261. X.IP \fB-sent\fP
  262. XDon't display the final response sent from the terminal.
  263. XThis is the default.
  264. X.IP \fB+systab\fP
  265. XUse 
  266. X.B /usr/usc/lib/qtermtab
  267. Xto find information for querying the terminal.
  268. XThis is the default
  269. X.IP \fB\-systab\fP
  270. XDon't use
  271. Xsystem tab file
  272. Xto find information for querying the terminal.
  273. X.IP "\fB\-wait \fIinterval\fP"
  274. XSet the wait (timeout) period to 
  275. X.I interval
  276. X(in seconds).
  277. X.SH "QTERMTAB"
  278. XThe format of the file
  279. X$HOME/.qtermtab
  280. Xand 
  281. X.I qterm's
  282. Xsystem tab file
  283. X.I /usr/usc/lib/qtermtab,
  284. Xconsists of four fields each seperated by white space (tabs and/or spaces).
  285. XThe first field is the string that should be used to query the terminal.
  286. XThe second field is the string to expect in response to the query.
  287. XThe third field is the terminal name (compatible with 
  288. X.I termcap(5))
  289. Xto print to standard output.
  290. XThe fourth field is optional and may contain a description of the exact
  291. Xmanufacturer and model name of the terminal to be used in a message
  292. Xprinted to standard error.
  293. X.PP
  294. XBlank lines or lines starting with the character ``#''
  295. Xare ignored and may be used as comment lines.
  296. XA character preceeded by a ``^'' is taken to mean the 
  297. X.I control
  298. Xcharacter.  (i.e. ``^['' is interpretted as an <ESCAPE>).
  299. XBoth the send and receive (first and second) fields may contain
  300. Xoctal values preceeded by a `\\'.
  301. X(i.e. <ESCAPE> can be represented by `\\033'.)
  302. X.PP
  303. XThe ``expect'' (second) field
  304. Xcan be a regular expression denoted by a leading backslash (`\\').
  305. Xi.e. "^[[123" matches the string "^[[123", whereas "^[\\[123]" matches
  306. X"^[1" or "^[2" or "^[3".
  307. XSee 
  308. X.I ed(1)
  309. Xfor regular expression information.
  310. X.PP
  311. XBelow is a sample file:
  312. X.sp 2
  313. X.nf
  314. X    #
  315. X    # QTerm File
  316. X    #
  317. X    ^[Z\0\0\0\0\0^[[?1;1c\0\0\0\0\0vt100\0\0\0\0\0A vt100 with STP
  318. X    ^[Z\0\0\0\0\0^[[?1;2c\0\0\0\0\0vt100\0\0\0\0\0ANSI/VT100 Clone
  319. X    ^[Z\0\0\0\0\0^[[?1;3c\0\0\0\0\0vt100\0\0\0\0\0A vt100 with AVO and STP
  320. X    ^[Z\0\0\0\0\0^[[?1;4c\0\0\0\0\0vt100\0\0\0\0\0A vt100 with GPO
  321. X    ^[Z\0\0\0\0\0^[iBO\0\0\0\0\0\0\0\0z29\0\0\0\0\0\0\0Zenith in Zenith Mode
  322. X.fi
  323. X.sp
  324. X.SH AUTHOR
  325. XMichael A. Cooper, 
  326. X.br
  327. XUniversity Computing Services, 
  328. X.br
  329. XUniversity of Southern California.
  330. X.SH FILES
  331. X.ta \w'/usr/usc/lib/qtermtab\ \ \ 'u
  332. X/usr/usc/lib/qtermtab    \- System table
  333. X.br
  334. X$HOME/.qtermtab    \- User's table
  335. X.br
  336. X/etc/termcap    \- termcap(5) database
  337. X.SH SEE ALSO
  338. Xcsh(1), ed(1), sh(1), termcap(5)
  339. X.SH DIAGNOSTICS
  340. X.IP "\fITerminal not recognized - defaults to dumb.\fP"
  341. X.I QTerm
  342. Xdid not receive a response from the terminal, or the response
  343. Xdid not match any that 
  344. X.I qterm 
  345. Xhas stored internally.  Use the \+watch option to check to see which
  346. Xis the case.
  347. X.SH BUGS
  348. XMany terminals do not send a response at all.
  349. END_OF_FILE
  350.   if test 5805 -ne `wc -c <'qterm.1'`; then
  351.     echo shar: \"'qterm.1'\" unpacked with wrong size!
  352.   fi
  353.   # end of 'qterm.1'
  354. fi
  355. if test -f 'qterm.h' -a "${1}" != "-c" ; then 
  356.   echo shar: Will not clobber existing file \"'qterm.h'\"
  357. else
  358.   echo shar: Extracting \"'qterm.h'\" \(3281 characters\)
  359.   sed "s/^X//" >'qterm.h' <<'END_OF_FILE'
  360. X/*
  361. X * Copyright (c) 1990 Michael A. Cooper.
  362. X * This software may be freely distributed provided it is not sold for 
  363. X * profit and the author is credited appropriately.
  364. X */
  365. X
  366. X/*
  367. X * $Header: /src/common/usc/bin/qterm/RCS/qterm.h,v 5.1 1991/03/12 00:46:24 mcooper Exp $
  368. X *------------------------------------------------------------------
  369. X *
  370. X * $Source: /src/common/usc/bin/qterm/RCS/qterm.h,v $
  371. X * $Revision: 5.1 $
  372. X * $Date: 1991/03/12 00:46:24 $
  373. X * $State: Exp $
  374. X * $Author: mcooper $
  375. X * $Locker:  $
  376. X *
  377. X *------------------------------------------------------------------
  378. X *
  379. X * Michael A. Cooper
  380. X * Research and Development Group
  381. X * University Computing Services 
  382. X * University of Southern California
  383. X * (mcooper@usc.edu)
  384. X *
  385. X *------------------------------------------------------------------
  386. X * $Log: qterm.h,v $
  387. X * Revision 5.1  1991/03/12  00:46:24  mcooper
  388. X * - Changed CMASK to CHAR_CMASK to avoid conflict
  389. X *   under AIX 3.1.
  390. X * - Expand tabs.
  391. X *
  392. X * Revision 5.0     1990/12/15  18:30:45  mcooper
  393. X * Version 5.
  394. X *
  395. X * Revision 4.1     90/12/15  18:14:27  mcooper
  396. X * Add copywrite.
  397. X * 
  398. X * Revision 4.0     88/03/08  19:31:23  mcooper
  399. X * Version 4.
  400. X * 
  401. X * Revision 3.2     88/03/08  19:28:52  mcooper
  402. X * Major rewrite.
  403. X * 
  404. X * Revision 3.1     88/03/08  15:32:16  mcooper
  405. X * Changed around user's qtermtab
  406. X * file names.
  407. X * 
  408. X * Revision 3.0     87/06/30  19:09:04  mcooper
  409. X * Release of version 3.
  410. X * 
  411. X * Revision 2.4     87/06/30  19:02:28  mcooper
  412. X * WAIT changed to 2 for slow systems.
  413. X * 
  414. X *------------------------------------------------------------------
  415. X */
  416. X
  417. X
  418. X
  419. X#ifndef TABFILE
  420. X# define TABFILE    "/usr/local/lib/qtermtab" /* Default qtermtab file */
  421. X#endif
  422. X#define USRFILE        ".qtermtab"        /* User's qtermtab file */
  423. X#define OLDUSRFILE    ".qterm"        /* Old user qtermtab file */
  424. X#define ALTSEND        "\033[c"        /* Alternate query string */
  425. X#define WAIT        2            /* Timeout (in seconds) */
  426. X#define SIZE        512            /* Receive buffer size */
  427. X#define CHAR_MASK    0377            /* Character mask */
  428. X#define ESC        '\033'            /* ESCAPE */
  429. X
  430. X#ifdef TRUE
  431. X#undef TRUE
  432. X#endif
  433. X#ifdef FALSE
  434. X#undef FALSE
  435. X#endif
  436. X#define TRUE        1
  437. X#define FALSE        0
  438. X
  439. X#ifdef USG5
  440. X# define crmode()    (_ntty.c_lflag &= ~ICANON,\
  441. X            _ntty.c_cc[VMIN] = 1, _ntty.c_cc[VTIME] = 0,\
  442. X            ioctl(_tty_ch, TCSETAF, &_ntty))
  443. X# define nocrmode()    (_ntty.c_lflag |= ICANON,\
  444. X            _ntty.c_cc[VMIN] = _otty.c_cc[VMIN],\
  445. X            _ntty.c_cc[VTIME] = _otty.c_cc[VTIME],\
  446. X            ioctl(_tty_ch, TCSETAF, &_ntty))
  447. X# define echo()        (_ntty.c_lflag |= ECHO,\
  448. X            ioctl(_tty_ch, TCSETAF, &_ntty))
  449. X# define noecho()    (_ntty.c_lflag &= ~ECHO,\
  450. X            ioctl(_tty_ch, TCSETAF, &_ntty))
  451. X#else /* !USG5 */
  452. X# define crmode()    (_tty.sg_flags |= CBREAK,\
  453. X            ioctl(_tty_ch, TIOCSETP, &_tty))
  454. X# define nocrmode()    (_tty.sg_flags &= ~CBREAK,\
  455. X            ioctl(_tty_ch, TIOCSETP, &_tty))
  456. X# define echo()        (_tty.sg_flags |= ECHO,      \
  457. X            ioctl(_tty_ch, TIOCSETP, &_tty))
  458. X# define noecho()    (_tty.sg_flags &= ~ECHO,  \
  459. X            ioctl(_tty_ch, TIOCSETP, &_tty))
  460. X#endif /* USG5 */
  461. X
  462. X/*
  463. X * Terminal table structure
  464. X */
  465. Xstruct termtable {
  466. X    char        *qt_sendstr;    /* String to send to terminal */
  467. X    char        *qt_recvstr;    /* String expected in response */
  468. X    char        *qt_termname;    /* Terminal name */
  469. X    char        *qt_fullname;    /* Full terminal name & description */
  470. X    struct termtable    *nxt;        /* Next structure */
  471. X};
  472. Xstruct termtable *termtab = NULL;
  473. END_OF_FILE
  474.   if test 3281 -ne `wc -c <'qterm.h'`; then
  475.     echo shar: \"'qterm.h'\" unpacked with wrong size!
  476.   fi
  477.   # end of 'qterm.h'
  478. fi
  479. if test -f 'qtermtab' -a "${1}" != "-c" ; then 
  480.   echo shar: Will not clobber existing file \"'qtermtab'\"
  481. else
  482.   echo shar: Extracting \"'qtermtab'\" \(3311 characters\)
  483.   sed "s/^X//" >'qtermtab' <<'END_OF_FILE'
  484. X#
  485. X# $Header: /am/sol/src/common/usc/bin/qterm/RCS/qtermtab,v 5.0 90/12/15 18:30:49 mcooper Release $
  486. X#
  487. X# QtermTab - Query terminal table for qterm(1).
  488. X#
  489. X#SendStr ReceiveStr        TermName    FullTermName
  490. X#
  491. X^[Z    ^[[?1;0c             vt100        Base vt100
  492. X^[Z    ^[[?1;1c             vt100       vt100 with STP
  493. X^[Z    ^[[?1;2c             vt100       ANSI/VT100 Clone
  494. X^[Z    ^[[?1;3c             vt100        vt100 with AVO and STP
  495. X^[Z    ^[[?1;4c             vt100        vt100 with GPO
  496. X^[Z    ^[[?1;5c             vt100        vt100 with GPO and STP
  497. X^[Z    ^[[?1;6c             vt100        vt100 with GPO and AVO
  498. X^[Z    ^[[?1;7c             vt100        vt100 with GPO, STP, and AVO
  499. X^[Z     ^[[?6;2c                vt100           Uniterm vt100 Emulator
  500. X^[Z    ^[/K                  h29         Zenith z29 in zenith mode
  501. X^[Z    ^[/Z                  vt52         Generic vt52
  502. X^[Z    ^[[0n                 vt100        AT&T Unix PC 7300
  503. X^[Z    ^[[62;1;2;6;8c        f220         Freedom 220 DEC clone
  504. X^[Z    ^[[=1;1c             avt-4p-s     Concept with 4 pages memory
  505. X^[Z    ^[[=1;2c             avt-8p-s     Concept with 8 pages memory
  506. X^[Z    ^[[?10c               la120         DEC Writer III
  507. X^[Z    ^[[?12;7;0;102c     vt125         DEC Pro 350 in vt125 mode
  508. X^[Z    ^[[?12c               vt100        Concept from Pro 350/UNIX
  509. X^[Z    ^[[?1;11c            cit101e      CIE CIT-101 Enhanced w/Graphics
  510. X^[Z    ^[[?62;1;2;6;7;8;9c     vt220       DEC VT220
  511. X^[Z    ^[[?62;1;2;6;7;8c    vt100        Amiga Handshake
  512. X^[Z    ^[[?62;1;4;6;7;8;9;15c    vt200-sb    Microvax II VMS
  513. X^[Z    ^[[?63;1;2;6;7;8c     tvi9220      TeleVideo 9220
  514. X^[Z    ^[[?6c                vt100           Generic vt100
  515. X^[Z    ^[[?8;8;6c        att630        AT&T 630 MTG
  516. X^[Z    ^[[?8c                vt100        TeleVideo 970
  517. X^[Z    ^[[?;c                vt100        Concept From Pro 350/UNIX
  518. X^[Z    ^[[?l;0c             vt100        AT&T Unix PC 7300
  519. X^[Z    ^[iB0                 h29         Zenith z29 in zenith mode
  520. X#^[Z    ^[[?1;11c            xt100+       Northern Tech LANPARSCOPE
  521. X############################################################################
  522. X#
  523. X# Enable at your own risk
  524. X#
  525. X#^[\040        50        wyse50        Wyse 50 Terminal
  526. X#^[i0        ^[iB0        z29        Zenith z29
  527. X#
  528. X# HP terminals
  529. X#
  530. X#^[*s1\^    2621^J        hp2621        Hewlett-Packard HP-2621
  531. X#^[*s1\^    2621A^J        hp2621a        Hewlett-Packard HP-2621A
  532. X#^[*s1\^    2621B^J        hp2621b        Hewlett-Packard HP-2621B
  533. X#^[*s1\^    2621K^J        hp2621k        Hewlett-Packard HP-2621K
  534. X#^[*s1\^    2621K45^J    hp2621k45    Hewlett-Packard HP-2621K45
  535. X#^[*s1\^    2621NL^J    hp2621nl    Hewlett-Packard HP-2621NL
  536. X#^[*s1\^    2621NT^J    hp2621nt    Hewlett-Packard HP-2621NT
  537. X#^[*s1\^    2621P^J        hp2621p        Hewlett-Packard HP-2621P
  538. X#^[*s1\^    2621WL^J    hp2621wl    Hewlett-Packard HP-2621WL
  539. X#^[*s1\^    2622^J        hp2622        Hewlett-Packard HP-2622
  540. X#^[*s1\^    2622A^J        hp2622a        Hewlett-Packard HP-2622A
  541. X#^[*s1\^    2622P^J        hp2622p        Hewlett-Packard HP-2622P
  542. X#^[*s1\^    2626^J        hp2626        Hewlett-Packard HP-2626
  543. X#^[*s1\^    2626A^J        hp2626a        Hewlett-Packard HP-2626A
  544. X#^[*s1\^    2626P^J        hp2626p        Hewlett-Packard HP-2626P
  545. X#^[*s1\^    2640^J        hp2640        Hewlett-Packard HP-2640
  546. X#^[*s1\^    2640A^J        hp2640a        Hewlett-Packard HP-2640A
  547. X#^[*s1\^    2640B^J        hp2640b        Hewlett-Packard HP-2640B
  548. X#^[*s1\^    2644A^J        hp2644a        Hewlett-Packard HP-2644A
  549. X#^[*s1\^    2645^J        hp2645        Hewlett-Packard HP-2645
  550. X#^[*s1\^    2645A^J        hp2645a        Hewlett-Packard HP-2645A
  551. X#^[*s1\^    2645NP^J    hp2645np    Hewlett-Packard HP-2645NP
  552. X#^[*s1\^    2647^J        hp2647        Hewlett-Packard HP-2647
  553. X#^[*s1\^    2647A^J        hp2647a        Hewlett-Packard HP-2647A
  554. X#^[*s1\^    2648^J        hp2648        Hewlett-Packard HP-2648
  555. X#^[*s1\^    2648A^J        hp2648a        Hewlett-Packard HP-2648A
  556. X############################################################################
  557. END_OF_FILE
  558.   if test 3311 -ne `wc -c <'qtermtab'`; then
  559.     echo shar: \"'qtermtab'\" unpacked with wrong size!
  560.   fi
  561.   # end of 'qtermtab'
  562. fi
  563. echo shar: End of archive 2 \(of 2\).
  564. cp /dev/null ark2isdone
  565. MISSING=""
  566. for I in 1 2 ; do
  567.     if test ! -f ark${I}isdone ; then
  568.     MISSING="${MISSING} ${I}"
  569.     fi
  570. done
  571. if test "${MISSING}" = "" ; then
  572.     echo You have unpacked both archives.
  573.     rm -f ark[1-9]isdone
  574. else
  575.     echo You still must unpack the following archives:
  576.     echo "        " ${MISSING}
  577. fi
  578. exit 0
  579. exit 0 # Just in case...
  580.